/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package imc;

/**
 *
 * @author Cássio Grancer Stein
 * cassiostein@hotmail.com
 * 
 */
public class MetodoIMCInfantil {

    
    private double imc = 0;
    private String condicao = null;
    
    public void fazerCalculo(double peso, double altura) throws RuntimeException {
        if (peso <= 0)
            throw new RuntimeException("Falha: O peso deve ser um número maior que 0");
        if (Double.isNaN(peso))
            throw new RuntimeException("Falha: O peso deve ser um número maior que 0");
        if ((0 < altura) && (altura < 3))
            imc = peso / (altura * altura);
        else
            throw new RuntimeException("Falha: A altura deve ser um número maior que 0 e menor que 3");
    }
    
    public void classificar(int idade, char sexo) throws RuntimeException {
        if (idade < 6)
            throw new RuntimeException("Falha: A idade deve ser um número entre 6 e 15");
        if (idade > 15)
            throw new RuntimeException("Falha: A idade deve ser um número entre 6 e 15");
        if ((sexo != 'F') && (sexo != 'M'))
            throw new RuntimeException("Falha: É necessário informar o sexo (M, F)");
        if (sexo == 'M'){
            if(idade == 6){
                if (imc > 18.0) {
                    condicao = "Obesidade";
                } else if (imc > 16.6) {
                    condicao = "Sobrepeso";
                } else if (imc > 14.5){
                    condicao = "Normal";
                } else 
                    condicao = "Abaixo do peso";
            } else if (idade == 7){
                if (imc > 19.1) {
                    condicao = "Obesidade";
                } else if (imc > 17.3) {
                    condicao = "Sobrepeso";
                } else if (imc > 15.0){
                    condicao = "Normal";
                } else 
                    condicao = "Abaixo do peso";
            } else if (idade == 8){
                if (imc > 20.3) {
                    condicao = "Obesidade";
                } else if (imc > 16.7) {
                    condicao = "Sobrepeso";
                } else if (imc > 15.6){
                    condicao = "Normal";
                } else 
                    condicao = "Abaixo do peso";
            } else if (idade == 9){
                if (imc > 21.4) {
                    condicao = "Obesidade";
                } else if (imc > 18.8) {
                    condicao = "Sobrepeso";
                } else if (imc > 16.1){
                    condicao = "Normal";
                } else 
                    condicao = "Abaixo do peso";
            } else if (idade == 10){
                if (imc > 22.5) {
                    condicao = "Obesidade";
                } else if (imc > 19.6) {
                    condicao = "Sobrepeso";
                } else if (imc > 16.7){
                    condicao = "Normal";
                } else 
                    condicao = "Abaixo do peso";
            } else if (idade == 11){
                if (imc > 23.7) {
                    condicao = "Obesidade";
                } else if (imc > 20.3) {
                    condicao = "Sobrepeso";
                } else if (imc > 17.2){
                    condicao = "Normal";
                } else 
                    condicao = "Abaixo do peso";
            } else if (idade == 12){
                if (imc > 24.8) {
                    condicao = "Obesidade";
                } else if (imc > 21.1) {
                    condicao = "Sobrepeso";
                } else if (imc > 17.8){
                    condicao = "Normal";
                } else 
                    condicao = "Abaixo do peso";
            } else if (idade == 13){
                if (imc > 25.9) {
                    condicao = "Obesidade";
                } else if (imc > 21.9) {
                    condicao = "Sobrepeso";
                } else if (imc > 18.5){
                    condicao = "Normal";
                } else 
                    condicao = "Abaixo do peso";
            } else if (idade == 14){
                if (imc > 26.9) {
                    condicao = "Obesidade";
                } else if (imc > 22.7) {
                    condicao = "Sobrepeso";
                } else if (imc > 19.2){
                    condicao = "Normal";
                } else 
                    condicao = "Abaixo do peso";
            } else if (idade == 15){
                if (imc > 27.7) {
                    condicao = "Obesidade";
                } else if (imc > 23.6) {
                    condicao = "Sobrepeso";
                } else if (imc > 19.9){
                    condicao = "Normal";
                } else 
                    condicao = "Abaixo do peso";
            }
        } else if (sexo == 'F'){
            if(idade == 6){
                if (imc > 17.4) {
                    condicao = "Obesidade";
                } else if (imc > 16.1) {
                    condicao = "Sobrepeso";
                } else if (imc > 14.3){
                    condicao = "Normal";
                } else 
                    condicao = "Abaixo do peso";
            } else if (idade == 7){
                if (imc > 18.9) {
                    condicao = "Obesidade";
                } else if (imc > 17.1) {
                    condicao = "Sobrepeso";
                } else if (imc > 14.9){
                    condicao = "Normal";
                } else 
                    condicao = "Abaixo do peso";
            } else if (idade == 8){
                if (imc > 20.3) {
                    condicao = "Obesidade";
                } else if (imc > 18.1) {
                    condicao = "Sobrepeso";
                } else if (imc > 15.6){
                    condicao = "Normal";
                } else 
                    condicao = "Abaixo do peso";
            } else if (idade == 9){
                if (imc > 21.7) {
                    condicao = "Obesidade";
                } else if (imc > 19.1) {
                    condicao = "Sobrepeso";
                } else if (imc > 16.3){
                    condicao = "Normal";
                } else 
                    condicao = "Abaixo do peso";
            } else if (idade == 10){
                if (imc > 23.2) {
                    condicao = "Obesidade";
                } else if (imc > 20.1) {
                    condicao = "Sobrepeso";
                } else if (imc > 17.0){
                    condicao = "Normal";
                } else 
                    condicao = "Abaixo do peso";
            } else if (idade == 11){
                if (imc > 24.5) {
                    condicao = "Obesidade";
                } else if (imc > 21.1) {
                    condicao = "Sobrepeso";
                } else if (imc > 17.6){
                    condicao = "Normal";
                } else 
                    condicao = "Abaixo do peso";
            } else if (idade == 12){
                if (imc > 25.9) {
                    condicao = "Obesidade";
                } else if (imc > 22.1) {
                    condicao = "Sobrepeso";
                } else if (imc > 18.3){
                    condicao = "Normal";
                } else 
                    condicao = "Abaixo do peso";
            } else if (idade == 13){
                if (imc > 27.7) {
                    condicao = "Obesidade";
                } else if (imc > 23) {
                    condicao = "Sobrepeso";
                } else if (imc > 18.9){
                    condicao = "Normal";
                } else 
                    condicao = "Abaixo do peso";
            } else if (idade == 14){
                if (imc > 27.9) {
                    condicao = "Obesidade";
                } else if (imc > 23.8) {
                    condicao = "Sobrepeso";
                } else if (imc > 19.3){
                    condicao = "Normal";
                } else 
                    condicao = "Abaixo do peso";
            } else if (idade == 15){
                if (imc > 28.8) {
                    condicao = "Obesidade";
                } else if (imc > 24.2) {
                    condicao = "Sobrepeso";
                } else if (imc > 19.6){
                    condicao = "Normal";
                } else 
                    condicao = "Abaixo do peso";
            }
        }
    }
    
    public double getImc(){
        return imc;
    }
    
    public String getCondicao(){
        return condicao;
    }
}
